#ifndef _FIG_ENEMY_MANAGER_H_
#define _FIG_ENEMY_MANAGER_H_

#include "ui/ui_manager.h"
#include "fig_enemy_craft.h"
#include "fig_level.h"

class FIGEnemyCollection;

class FIGEnemyManager
{
public:

	
	static FIGEnemyManager&				    Instance();
	

	void									RenderDecal(const math::Vec2& Offset,float Scale);
	void									Render(const math::Vec2& Offset,float Scale);
	void									RenderShadow(const math::Vec2& Offset,float Scale);
	void									RenderDebug(const math::Vec2& Offset,float Scale);
	void									Tick(float dt);
	


	void									Clear();
	void									Spawn(const FIGLevel::EnemyInfo* pEnemyInfo, bool bUniqe = false );
	int										GetCount() const;
	bool									HitTest(FIGBullet* pBullet);
	FIGCraft*								GetTopidoTarget(FIGBullet* pBullet);

	void									DoDamangeToAll(float DamageAmount);
	FIGLifeObj*								HitTest_Laser(	const math::Vec2& StartPos, 
															float Width,
															math::Vec2& HitPos
															);
	void									ForceKillAll();

protected:

	FIGEnemyManager();


	std::vector<FIGEnemyCollection*>		m_EnemyCollections;

};

#endif